Dynamic power requirement budget manager

ABSTRACT

A system and method to determine a presence of devices coupled to one a more peripheral buses in a system, and dynamically reducing power consumption of a subset of the devices that are present, based on correlating application/device association and a predetermined power source budget. In one embodiment, the reducing of the power consumption is performed dynamically by having an agent reduce the power limit in a device register(s) corresponding to the subset of devices. Furthermore, in one embodiment, the power resource budget is based at least in part on a user-selected power/performance level.

FIELD OF INVENTION

The field of invention relates power management, and in particular, tothe dynamic power budget manager for devices on a peripheral bus thatsupports dynamic device power allocation.

BACKGROUND

With today's mobile computers and client systems, extension of batterylife and conservation of electrical demands on power supply has become apriority. However, extending the battery life and conservation of powerof a mobile computer/client system has become more challenging. Highpowered processors, circuits, devices and displays provided in today'smobile computers/client systems consume more power than ever before. Inorder to achieve maximum interoperability between devices on theplatform and a non-compromised end-user experienceintermediate/differing power levels of devices also need to be utilizedalong with leveraging the optional set of components for a specificfunctionality. Therefore there is an increasing need to find ways toallocate power consumption without sacrificing performance.

Furthermore, with the introduction of new architectures and hot plugcapability features for add-in cards/devices, there is a further needfor systems to be capable of properly allocating power efficiently toexisting devices not in reduced power states and any new device(s)dynamically added to the system. This power allocation should be basedon the power resources requested by devices, a prioritized scheme forpower allocation and user controlled device/power/performance profilesof operation.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 provides a flow diagram describing the processes of providingpower management for a computer system, in accordance with oneembodiment;

FIG. 2 presents a flow diagram describing a process of managing powerconsumption of the device slots on the peripheral bus when a new deviceis added; and

FIG. 3 presents a flow diagram describing an example of the power budgetmanager managing the power consumption of devices on peripheral buses,in accordance with one embodiment.

FIG. 4 illustrates a system diagram of a system operable to providepower budget management in accordance with one embodiment.

DETAILED DESCRIPTION

A system and method to determine a presence of devices coupled to one ormore peripheral buses in a system, and reducing power consumption of asubset of the devices that are present, based on a predetermined powerresource budget, is described. In one embodiment, the reducing of thepower consumption is performed dynamically by having an agent reduce thepower limit in a device register(s) corresponding to the subset ofdevices. Furthermore, in one embodiment, the power resource budget isbased at least in part on a user-selected power/performance level.

In the following detailed description of the present invention numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. However, it will be apparent toone skilled in the art that the present invention may be practicedwithout these specific details. In other instances, well-knownstructures and devices are shown in block diagram form, rather than indetail, in order to avoid obscuring the present invention.

FIG. 1 provides a flow diagram describing the processes of providingpower management for a computer system. In process 102, a user of thecomputer system is prompted to select a performance option. In analternative embodiment, the operating system may also boot with adefault option that requires no user intervention unless the user wantsto change it. In one embodiment, the performance options may includeextra performance power, and standard performance and battery life.

In process 104, an operating system or a system firmware determines atotal system power resource budget based in part, in one embodiment, onthe user's selected performance. In other embodiments, a user's selectedperformance may not have been obtained. In yet further alternativeembodiments, the power resource budget may take into account userapplication requirements, a processor performance states (e.g.,C-states), processor throttling, chipset/memory throttling, bus slotpower limits, projected device power consumption limits, memoryutilization, etc., when determining the total power resource budget.

In one embodiment, a power budget manager is provided in the system, andis responsible for managing power consumption among device slots onperipheral bus, such as a Peripheral Component Interconnect (PCI)Express bus. In alternative embodiments, the power budget manager mayfurther manage power consumption of other devices within the system,which have power budgeting capability, including devices on buses otherthan peripheral buses.

In one embodiment, the power budget manager is an agent provided on thecomputer system, which may include a routine of instructions, which whenexecuted manage power consumption among the device slots, as describedherein. The power budget may be executed intermittently, based oninterrupts caused with devices that are added or removed from a slot ofthe peripheral bus or devices that enter/exit lower power hardwaredevice states, in response to a request from the operating system, orsome other event.

In process 106, the power budget manager polls the device slots of theperipheral bus to determine what devices are present. In one embodiment,one or more of the device slots provided on the bus is capable of havingthe power provided to the slot be dynamically controlled. In oneembodiment, a device register is provided for one or more of the slots,with the device register identifying the current power limits of therespective slot. By changing the power limits within a device register,the device does not to exceed consumption beyond the programmed powerlimits and subsequently the power provided to the respective slot on thebus may be reduced or increased by using some other standalonebattery/power supply logic on the platform.

Therefore, when the power budget manager determines a device is presentwithin a slot along the peripheral bus, the power budget manager is alsoable to determine the amount of power to be provided to respective slot,by reading the device register corresponding the device slot.

In process 108, after determining which device slots currently containdevices, the power budget manager generates a prioritized list of thedevice slots, which currently contain devices. In one embodiment, thedevice slots may be configured to contain only certain types of devices,and therefore when a device is present within a slot, the power budgetmanager is aware of the type of device present. Knowing what devices arepresent, the prioritized list is based in part on the demands of anapplication being executed (or to be executed), devices associated witha particular application usage, preferences selected by a user of thecomputer system, and/or pre-configured preferences of the system.

Consider the following scenarios as examples. Assume an applicationneeds a “video card”+“DVD drive”. In this case, these two devices wouldhave very high power priority and get the power budget that they request(at the expense of perhaps the USB bus or something that may not beneeded by the application).

In a second example, a multi-function MPEG decoder (video) card may haveseveral modes: iDCT only, iDCT+VLD or iDCT+VLD+HWMC. Each moderepresents enhanced decode performance but at increased power demand.Conversely, if the video decode device requests 150 W (iDCT+VLD+HWMC)but is a lower priority on the user or system power budget profile, itmay only get 75 W and fall back to only iDCT-only mode.

A DVD drive may be another example. Perhaps the drive needs 15 W to readbut 25 W to burn DVD. Depending on the current application mode (readingvs. burning) the power demand is different. In one embodiment, in a useror system-selected profile, there may be standard profiles like:“enhanced video mode” which optimizes power to the video card at theexpense of other devices.

In process 110, based in part on the user selected performance level,the prioritized lists of device slots that currently contain devices,the power budget manager dynamically reduces power consumption of atleast a subset of the devices that are present on the peripheral bus toaccommodate the total system resource budget requirements as previouslydetermined. In one embodiment, the power budget manager adjusts thepower limits of one or more of the slots on the bus, to a disabled adevice in a slot or, alternatively, place the device in a low powerconsuming state.

Thereafter, the power budget manager will continue to manage the powerconsumption of the devices. In one embodiment, in process 112, the powerbudget manager will re-enable or raise the power limits of one or moreof the subset of devices in response to either an increase in the totalresource budget, device exiting a low power state, a preference of theuser, completion of an application be executed, or the absence of a needfor one of the devices whose power consumption had not been reduced.Furthermore, the power budget manager may reduce the power consumptionof other devices on the peripheral bus (whose power consumption had notpreviously been reduced), while raising the power consumption of one ormore of the subset of devices, which had their power consumptionreduced.

In one embodiment, the power budget manager may intermittently poll todetermine the presences/absences of devices, based on a predeterminedtime period, or in response to an alert/interrupt generated when adevice has been added or removed from one of the peripheral buses. Inthe case of a device having been added to one of the peripheral buses,the power budget manager needs to responsibly allocate power to a newlyadded device.

FIG. 2, presents a flow diagram describing a process of managing powerconsumption of the device slots on the peripheral bus when a new deviceis added. In process 202 the power budget manager detects the additionof a device (e.g., a hot plug capable device) having been plugged intoone of the slots on the peripheral bus. After having determined a powerlimit of the newly added device (based on the slot in which the devicehas been), in process 204 the power budget manager determines whetherenough power is available from the total system resource power budget toaccommodate the new device.

If there is not enough power to accommodate the new device, in process206 the power budget manager determines a priority of the device slot ofthe newly device, relative to the other device slots already containingdevices, as included in the previously generated priority list. If thedevice slot of the newly added device has a higher priority than one ormore device slots currently containing a device, then in process 208 thepower budget manager reduces the power limit of one or more of thosedevice slots to accommodate the newly added device before the addeddevice is enabled. If the device slot of the newly added device does nothave a priority, then in process 210 the newly added device is notenabled until an application that uses the particular device is launchedand there is reallocation in the prioritization of the devices.

FIG. 3 presents a flow diagram describing an example of the power budgetmanager managing the power consumption of devices on peripheral buses,in accordance with one embodiment. In process 302, at least a PCIExpress audio unit and USB speakers are provided on the peripheral busesof a system and allocated standard power consumption.

In process 304, in response to a need to provide power to a PCI Expressvideo capture device, the power budget manager reduces power of thedevice slot containing the PCI Express audio to accommodate the PCIExpress video capture unit. The need to provide power to the videocapture may arise by having the video capture unit added to the system,through the need of an application being processed by the computersystem, or alternatively by the selected preference of a user of thecomputer system.

In process 306, a hot plug storage device is added to one of theperipheral buses and the power budget manager determines that none ofthe devices from the previous subset need to be placed in a powermanaged state. In process 308, in response to an increase in the totalsystem resource budget, or the completion of an application beingexecuted, the power budget manager reallocates power to the device slotof the PCI Express audio unit.

The processes described above can be stored in a memory of a computer,system, or machine as a set of instructions to be executed by aprocessor of the computer system or machine. For example, FIG. 4illustrates a system 400 including a processor 402, a network interface404, a peripheral bus 406 including multiple device slots 408 a-n, and amemory 410 having stored therein a set of instructions to providedynamic power budget managing, in accordance with one embodiment asdescribed herein.

In addition, the instructions to perform the processes described abovecould alternatively be stored on other forms of machine-readable media,including magnetic and optical disks. For example, the processesdescribed could be stored on machine-readable media, such as magneticdisks or optical disks, which are accessible via a disk drive (orcomputer-readable medium drive). Further, the instructions can bedownloaded into a computing device over a data network in a form ofcompiled and linked version.

Alternatively, the logic to perform the processes as discussed abovecould be implemented in additional computer and/or machine readablemedia, such as discrete hardware components as large-scale integratedcircuits (LSI's), application-specific integrated circuits (ASIC's),firmware such as electrically erasable programmable read-only memory(EEPROM's); and electrical, optical, acoustical and other forms ofpropagated signals (e.g., carrier waves, infrared signals, digitalsignals, etc.); etc

Whereas many alterations and modifications of the present invention willno doubt become apparent to a person of ordinary skill in the art afterhaving read the foregoing description, it is to be understood that anyparticular embodiment shown and described by way of illustration is inno way intended to be considered limiting. Therefore, references todetails of various embodiments are not intended to limit the scope ofthe claims which in them selves recite only those features regarded asessential to the invention.

1. A method comprising: polling to determine a presence of devices coupled to a peripheral bus in a system; and dynamically reducing power consumption of a subset of the devices based on a predetermined power resource budget.
 2. The method of claim 1 further comprising after the polling, calculating power requirements of device slots currently containing the devices.
 3. The method of claim 2, wherein the device slots have corresponding device registers to identify a limit of power to be provided to a respective device slot.
 4. The method of claim 1, wherein the dynamically reducing power consumption of the subset includes, a power budget manager agent reducing a power limit in a corresponding device register for each device slot of the subset.
 5. The method of claim 4, wherein the predetermined power resource budget is based at least in part on a user selected performance level.
 6. The method of claim 2, wherein the bus includes at a Peripheral Component Interconnect (PCI) Express bus.
 7. The method of claim 2, further comprising after calculating power requirements of the device slots currently containing devices, generating a prioritized list of the device slots currently containing devices.
 8. The method of claim 2 further comprising in response to detecting a device has been added to the bus, verifying enough power can be provided to a device slot containing the added device, before enabling the device.
 9. The method of claim 8, wherein the added device is a hot plug capable device.
 10. The method of claim 9, wherein the system is one of a mobile computer system.
 11. The method of claim 5, wherein the power resource budget is based on an application to be executed by the system.
 12. The method of claim 11, wherein in response to one of a completion of execution of an application, and removal of a power consuming device, the power budget manager increasing power limits of one or more of the device slots.
 13. A machine-readable medium having stored thereon a set of instructions, which when executed, perform a machine-readable medium comprising: polling to determine a presence of devices coupled to a peripheral bus in a system; and dynamically reducing power consumption of a subset of the devices based on a predetermined power resource budget.
 14. The machine-readable medium of claim 13, including additional instructions, when executed, perform the method further comprising, after the polling, calculating power requirements of device slots currently containing the devices.
 15. The machine-readable medium of claim 14, wherein the device slots have corresponding device registers to identify a limit of power to be provided to a respective device slot.
 16. The machine-readable medium of claim 13, wherein the dynamically reducing power consumption of the subset includes, a power budget manager agent reducing a power limit in a corresponding device register for each device slot of the subset.
 17. The machine-readable medium of claim 16, wherein the predetermined power resource budget is based at least in part on a user selected performance level.
 18. The machine-readable medium of claim 14, wherein the bus includes at a Peripheral Component Interconnect (PCI) Express bus.
 19. The machine-readable medium of claim 14, including additional instructions, when executed, perform the method further comprising, after calculating power requirements of the device slots currently containing devices, generating a prioritized list of the device slots currently containing devices.
 20. The machine-readable medium of claim 14, including additional instructions, when executed, perform the method further comprising, in response to detecting a device has been added to the bus, verifying enough power can be provided to a device slot containing the added device, before enabling the device.
 21. A system comprising: A processor, a network interface coupled to the processor; and a machine-readable medium having stored thereon a set of instructions which when executed cause a system to perform a method comprising: polling to determine a presence of devices coupled to a peripheral bus in a system; and dynamically reducing power consumption of a subset of the devices based on a predetermined power resource budget.
 22. The system of claim 21, wherein the machine-readable medium includes additional instructions, which when executed, perform the method further comprising, the dynamically reducing power consumption of the subset includes, a power budget manager agent reducing a power limit in a corresponding device register for each device slot of the subset.
 23. The system of claim 22, wherein the power resource budget is based on an application to be executed by the system.
 24. The system of claim 23, wherein the machine-readable medium includes additional instructions, which when executed, perform the method further comprising, in response to one of a completion of execution of an application, and removal of a power consuming device, the power budget manager increasing power limits of one or more of the device slots.
 25. A method comprising: calculating power requirements of device slots on a Peripheral Component Interconnect (PCI) Express bus that currently contain devices; and reducing a power limit in corresponding device registers for a subset of the device slots currently containing devices, based on a predetermined power resource budget.
 26. The method of claim 25, further comprising generating a prioritized list of the device slots currently containing devices, based on at least one of an application being executed, an application to be executed, a preference selected by a user of a computer system, and a pre-configured preference of the system.
 27. The method of claim 25, further comprising, in response to one of a completion of execution of an application, and removal of a power consuming device, increasing power limits of one or more of the device slots.
 28. A system comprising: A processor, a network interface coupled to the processor; and a machine-readable medium having stored thereon a set of instructions which when executed cause a system to perform a method comprising: calculating power requirements of device slots on a Peripheral Component Interconnect (PCI) Express bus that currently contain devices; and reducing a power limit in corresponding device registers for a subset of the device slots currently containing devices, based on a predetermined power resource budget.
 29. The system of claim 28, wherein the machine-readable medium includes additional instructions, which when executed, perform the method further comprising, generating a prioritized list of the device slots currently containing devices, based on at least one of an application being executed, an application to be executed, a preference selected by a user of a computer system, and a pre-configured preference of the system.
 30. The method of claim 25, wherein the machine-readable medium includes additional instructions, which when executed, perform the method further comprising, in response to one of a completion of execution of an application, and removal of a power consuming device, increasing power limits of one or more of the device slots. 